#pragma once 

#include "Common.h"
#include "IPipelineBindable.h"
#include "Resource.h"
#include "Enums.h"


class EXPORT Texture : public IPipelineBindable , public Resource
{
	unsigned int texture;
public:
	Texture();
	~Texture();

	void Dispose();
	void Bind();
	void Unbind();
	void LoadFromFile(const char * fileName);
	void SetProperty(TexProp prop,TexVal val);
	void InitTexture(unsigned int width,unsigned int height);
	void GerateMipMaps();
	unsigned int GetGLRes();

	static void SetActiveSlot(unsigned short slot);
	static void BindUniformToSlot(int uniformId,unsigned int slot);
	
	
};